package com.cap.dreamcircle.Api;

import com.cap.dreamcircle.Model.Bean.AdCommentBean;
import com.cap.dreamcircle.Model.Bean.AdsArticleBean;
import com.cap.dreamcircle.Model.Bean.ArticalDeteial;
import com.cap.dreamcircle.Model.Bean.BaseBean;
import com.cap.dreamcircle.Model.Bean.DreamCircleFriendsBean;
import com.cap.dreamcircle.Model.Bean.DreamCircleUserRecordsBean;
import com.cap.dreamcircle.Model.Bean.DreamDetailBean;
import com.cap.dreamcircle.Model.Bean.DreamLabelBean;
import com.cap.dreamcircle.Model.Bean.DreamLabelDetailBean;
import com.cap.dreamcircle.Model.Bean.DreamRecordsMonthlyBean;
import com.cap.dreamcircle.Model.Bean.SelfSimpleDreamRecordsBean;
import com.cap.dreamcircle.Model.Bean.SolveDreamBean;

import java.util.HashMap;
import java.util.Map;

import okhttp3.RequestBody;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.PartMap;
import rx.Observable;

/**
 * Created by liucxu on 2017/8/10.
 */

public interface DreamService {

    @Multipart
    @POST("dream.do")
    Observable<BaseBean> RecordDream(@PartMap Map<String,RequestBody> params);

    @FormUrlEncoded
    @POST("dream.do")
    Observable<SelfSimpleDreamRecordsBean> SelfSimpleDreamRecords(@FieldMap HashMap<String,String> params);


    @FormUrlEncoded
    @POST("dream.do")
    Observable<DreamDetailBean> DreamRecordDetail(@FieldMap HashMap<String,String> params);

    @FormUrlEncoded
    @POST("dream.do")
    Observable<BaseBean> PostDreamComment(@FieldMap HashMap<String,String> params);

    @FormUrlEncoded
    @POST("dream.do")
    Observable<DreamLabelBean> RequestDreamLabel(@FieldMap HashMap<String,String> params);

    @FormUrlEncoded
    @POST("dream.do")
    Observable<DreamLabelDetailBean> RequestDreamLabelDetail(@FieldMap HashMap<String,String> params);

    @FormUrlEncoded
    @POST("dream.do")
    Observable<DreamRecordsMonthlyBean> RequestDreamRecordsMonthly(@FieldMap HashMap<String,String> params);

    @FormUrlEncoded
    @POST("dream.do")
    Observable<DreamCircleFriendsBean> RequestDreamCircleRecords(@FieldMap HashMap<String,String> params);

    @FormUrlEncoded
    @POST("dream.do")
    Observable<BaseBean> DeleteDreamCircleById(@FieldMap HashMap<String,String> params);

    @FormUrlEncoded
    @POST("dream.do")
    Observable<BaseBean> LikeDreamCircleRecord(@FieldMap HashMap<String,String> params);

    @FormUrlEncoded
    @POST("dream.do")
    Observable<DreamCircleUserRecordsBean> RequestUserDreamRecord(@FieldMap HashMap<String,String> params);

    @FormUrlEncoded
    @POST("dream.do")
    Observable<DreamCircleUserRecordsBean> RequestDreamRecordByDay(@FieldMap HashMap<String,String> params);

    @FormUrlEncoded
    @POST("dream.do")
    Observable<SolveDreamBean> RequestSolveDreamRecordTalk(@FieldMap HashMap<String,String> params);

    @FormUrlEncoded
    @POST("dream.do")
    Observable<BaseBean> PostDreamRecordTalk(@FieldMap HashMap<String,String> params);

    @FormUrlEncoded
    @POST("dream.do")
    Observable<DreamLabelBean> QueryTagsByKeyWords(@FieldMap HashMap<String,String> params);

    @FormUrlEncoded
    @POST("dream.do")
    Observable<AdsArticleBean> RequestMainPageAds(@FieldMap HashMap<String,String> params);

    @FormUrlEncoded
    @POST("dream.do")
    Observable<BaseBean> ReportDreamRecord(@FieldMap HashMap<String,String> params);

    @FormUrlEncoded
    @POST("dream.do")
    Observable<AdCommentBean> QueryAdComments(@FieldMap HashMap<String,String> params);

    @FormUrlEncoded
    @POST("dream.do")
    Observable<BaseBean> PostAdComment(@FieldMap HashMap<String,String> params);

    @FormUrlEncoded
    @POST("dream.do")
    Observable<BaseBean> LikeArtical(@FieldMap HashMap<String,String> params);

    @FormUrlEncoded
    @POST("dream.do")
    Observable<BaseBean> HasReadArtical(@FieldMap HashMap<String,String> params);

    @FormUrlEncoded
    @POST("dream.do")
    Observable<ArticalDeteial> QuertyArticalDetail(@FieldMap HashMap<String,String> params);
}
